package 面向对象;
/*
 一个工厂对象决定出那一种产品类的实例
*/

public class 简单工厂类
{ 	
	public static void main(String[] args){
		//使用者和被使用者两者之间耦合，产生依赖，
		//当被使用者改动时，会影响使用者
		Product p1=new Phone();
		p1.work();
		Product p2=new Computer();
		p2.work();
		//简单工厂模式,实现方法
		Product p3=new ProductFactory().setProduct("phone");//只需改变参数就可以
		if (p3!=null){
			p3.work();
		}	
	}
}
//工厂类
class ProductFactory{
	public Product setProduct(String name){
		if("phone".equals(name)){
			return new Phone();
		}else if("computer".equals(name)){
			return new Computer();
		}else{
			return null;
		}
	}
}
interface Product{
	void work();
}

class Phone implements Product
{

	@Override
	public void work()
	{
		System.out.println("手机开始工作........");
	}
}
class Computer implements Product
{

	@Override
	public void work()
	{
		System.out.println("电脑开始工作......");
	}

	
}
